Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

196
Views
Is the letter "f" necessary if the decimal point is written?

What is the difference between the 2 following code lines?

#define F_SAMP 10000.0f

#define F_SAMP 10000.0

Aren't both float? (By the way, in this particular case compiler is XC16 but I do not think that matters too much) Thanks for the attention

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Is the letter "f" necessary if the decimal point is written?

Not necessary, but best to use f-less constants with double variables/math and f suffixed constants with float ones.

Aren't both float?

There are both floating-point.
But float and double are different.

Type difference

Appending an f make a floating point constant type float rather than double.

This can steer to different code with _Generic and <tgmath.h> as well as the math used in a floating-point expression.

Given the usual range and precision difference, subtle and sometimes not so subtle differences will occur.

Value difference

The f tell the compiler to use the usually narrower range and precision of a float.
e.g. 0.1 != 0.1f.

Sometimes it makes a value difference too, even when assigned to a float.

over 4 years ago · Santiago Trujillo Report

0

Floating-point constants with an f or F suffix have type float, with no suffix have type double, and with an l or L suffix have type long double.

First, this makes a difference because the value can be different, and usually will be different if the value is not an integer. For example, using the formats most commonly used for float and double, the value of 123456789. is 123,456,789, but the value of 123456789.f is 123,456,792.

Further, if the value is assigned to a float, the result may be different than if the constant used f originally. For example, after:

float f0 = 9007198986305535.5f;
float f1 = 9007198986305535.5;

The value of f0 is 9,007,198,717,870,080, but the value of f1 is 9,007,199,254,740,992. This is because the former rounds 9,007,198,986,305,535.5 directly to float, but the latter rounds first to double and then to float.

over 4 years ago · Santiago Trujillo Report

0

The f suffix makes the constant 10000.0f have type float.

The constant 10000.0 has type double.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!